package com.unju.hibernate.entidades;

// Generated 06/12/2014 23:30:16 by Hibernate Tools 3.4.0.CR1

import java.util.Date;
import java.util.HashSet;
import java.util.Set;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import static javax.persistence.GenerationType.IDENTITY;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.OneToMany;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;

/**
 * Proyecto generated by hbm2java
 */
@Entity
@Table(name = "proyecto")
public class Proyecto implements java.io.Serializable {

	private Integer idProyecto;
	private Clasificacion clasificacion;
	private String nombre;
	private String descripcion;
	private String estado;
	private String baja;
	private Date fechaAlta;
	private Date fecInicio;
	private Date fecFin;
	private boolean archivado;
	private Set<Auditoria> auditorias = new HashSet<Auditoria>(0);

	public Proyecto() {
	}

	public Proyecto(Clasificacion clasificacion, String nombre,
			String descripcion, String estado, String baja, Date fechaAlta,
			Date fecInicio, Date fecFin, boolean archivado) {
		this.clasificacion = clasificacion;
		this.nombre = nombre;
		this.descripcion = descripcion;
		this.estado = estado;
		this.baja = baja;
		this.fechaAlta = fechaAlta;
		this.fecInicio = fecInicio;
		this.fecFin = fecFin;
		this.archivado = archivado;
	}

	public Proyecto(Clasificacion clasificacion, String nombre,
			String descripcion, String estado, String baja, Date fechaAlta,
			Date fecInicio, Date fecFin, boolean archivado,
			Set<Auditoria> auditorias) {
		this.clasificacion = clasificacion;
		this.nombre = nombre;
		this.descripcion = descripcion;
		this.estado = estado;
		this.baja = baja;
		this.fechaAlta = fechaAlta;
		this.fecInicio = fecInicio;
		this.fecFin = fecFin;
		this.archivado = archivado;
		this.auditorias = auditorias;
	}

	@Id
	@GeneratedValue(strategy = IDENTITY)
	@Column(name = "idProyecto", unique = true, nullable = false)
	public Integer getIdProyecto() {
		return this.idProyecto;
	}

	public void setIdProyecto(Integer idProyecto) {
		this.idProyecto = idProyecto;
	}

	@ManyToOne(fetch = FetchType.LAZY)
	@JoinColumn(name = "idClasificacion", nullable = false)
	public Clasificacion getClasificacion() {
		return this.clasificacion;
	}

	public void setClasificacion(Clasificacion clasificacion) {
		this.clasificacion = clasificacion;
	}

	@Column(name = "nombre", nullable = false, length = 45)
	public String getNombre() {
		return this.nombre;
	}

	public void setNombre(String nombre) {
		this.nombre = nombre;
	}

	@Column(name = "descripcion", nullable = false, length = 500)
	public String getDescripcion() {
		return this.descripcion;
	}

	public void setDescripcion(String descripcion) {
		this.descripcion = descripcion;
	}

	@Column(name = "estado", nullable = false, length = 45)
	public String getEstado() {
		return this.estado;
	}

	public void setEstado(String estado) {
		this.estado = estado;
	}

	@Column(name = "baja", nullable = false, length = 2)
	public String getBaja() {
		return this.baja;
	}

	public void setBaja(String baja) {
		this.baja = baja;
	}

	@Temporal(TemporalType.DATE)
	@Column(name = "fechaAlta", nullable = false, length = 10)
	public Date getFechaAlta() {
		return this.fechaAlta;
	}

	public void setFechaAlta(Date fechaAlta) {
		this.fechaAlta = fechaAlta;
	}

	@Temporal(TemporalType.DATE)
	@Column(name = "fecInicio", nullable = false, length = 10)
	public Date getFecInicio() {
		return this.fecInicio;
	}

	public void setFecInicio(Date fecInicio) {
		this.fecInicio = fecInicio;
	}

	@Temporal(TemporalType.DATE)
	@Column(name = "fecFin", nullable = false, length = 10)
	public Date getFecFin() {
		return this.fecFin;
	}

	public void setFecFin(Date fecFin) {
		this.fecFin = fecFin;
	}

	@Column(name = "archivado", nullable = false)
	public boolean isArchivado() {
		return this.archivado;
	}

	public void setArchivado(boolean archivado) {
		this.archivado = archivado;
	}

	@OneToMany(fetch = FetchType.LAZY, mappedBy = "proyecto")
	public Set<Auditoria> getAuditorias() {
		return this.auditorias;
	}

	public void setAuditorias(Set<Auditoria> auditorias) {
		this.auditorias = auditorias;
	}

}
